package com.xl.singleton.inclass;

/**
 * 静态内部类实现方式
 * @author 波波烤鸭
注意点:

外部类没有static属性，则不会像饿汉式那样立即加载对象。
只有真正调用getInstance(),才会加载静态内部类。加载类时是线程 安全的instance是static final类型，保证了内存中只有这样一个实例存在，而且只能被赋值一次，从而保证了线程安全性.
兼备了并发高效调用和延迟加载的优势！– 兼备了并发高效调用和延迟加载的优势！
 */
public class SingletonInstance {
	// 静态内部类
	public static class SingletonClassInstance{
		// 声明外部类型的静态常量
		public static final SingletonInstance instance = new SingletonInstance();
	}
	// 私有化构造方法
	private SingletonInstance(){}
	
	// 对外提供的唯一获取实例的方法
	public static SingletonInstance getInstance(){
		return SingletonClassInstance.instance;
	}
}
